#ifndef _DFS_CLIENT
#define _DFS_CLIENT
/* Definitions */
#define TRUE 1
#define FALSE 0
#define OK 0
#define ERROR -1
#define MAXIPADDRESSLEN 16
#define CMDLEN 100
#define NOTCONNECTED -1
#define REQUESTLEN 3*CMDLEN
#define BUFFER_SIZE 512
#define NAME_MAX 20

#define OPEN 0
#define READ 1
#define WRITE 2
#define CLOSE 3

#ifndef OPENED_FILE
#define OPENED_FILE

typedef struct openedFileList{
    char filename[NAME_MAX];
    /* Single linked list */
    struct openedFileList *next;
} openedFileList;

#endif

/* Global variables for opened files list */
int next_available;
int max_available;
char my_ip_address[MAXIPADDRESSLEN];
openedFileList *the_list;

/* Function prototypes */
void splasher(void);
int connect_to_server(int , char *);
void parse_client_shell(void);
char * get_client_request(char *);
const char * get_my_IP_address(void);
void handle_opened_fd_list(const char *, int );
int check_if_opened(const char *);
#endif
